define('sendPhoneCodeView',['common'],function(utils){
	var sendPhoneCodeView = (function(data,suc){
		utils.ajax(utils.getWebUrl('verify/sendPhoneCode'),
			data,
			'POST',
		function(res){
			suc(res);
		});	
	});
	return sendPhoneCodeView;
})

define('isIdCard',['common'],function(utils){
	var isIdCard = (function(data,suc){
		var data = data;
		$.ajax({
            url: utils.getWebUrl('verify/isIdCard'),
            type: 'POST',
            data: data, 
            dataType: 'json',
            headers: {
               'authorization': 'Bearer '+utils.userToken()
            },
            contentType:"application/x-www-form-urlencoded; charset=utf-8",
            xhrFields: {
                withCredentials: true
            },
            crossDomain: true,
            success: function(res) {
                if(res.code === "10000"){
                    suc(res)
                }else{
                    utils.appAlert('该身份证号码已被其它用户使用，请更换身份证号码后进行实名认证');
       				return;
                }
            },
            error: function(res) {
                utils.appAlert('网络异常');
            }
        });
	})
	return isIdCard;
})

define([
	'vue',
	'config',
	'common',
	'sendPhoneCodeView',
	'isIdCard'
	],function(Vue,config,utils,sendPhoneCodeView,isIdCard){
	'use strict';

	var certification_registerView=new Vue({
		el:'#app',
		data:{
			realName:'',
			carId:'',
			cardNo:'',
			banks:'',
			branch:'',

			phone:'',
			userPhone:'', 				//用户手机
			phoneCode:'',
			secondOfDelay : 120000 ,
			secondLeftOfDelay : 0 
		},
		created:function(){
			utils.userToken();
			var _this = this;
			utils.ajax(utils.getWebUrl('user/personal'),null,'POST',function(res){ 
				_this.phone = res.data.phone;
				_this.userPhone =  res.data.phone;
			})
		},
		methods:{
			inputPhone:function(event){
				//console.log(this.phone)
				if(this.phone.length === 11){
					if(this.phone !== this.userPhone){
						this.fadeIn();
					}else{
						this.fadeOut();
					}
				}
			},
			getVeryCode:function(){
				var _this =this;
				var cardNo = utils.Trim(this.cardNo,"g");

				if($.trim(_this.realName) === ""){
					utils.appAlert('请输入真实姓名');
					return;
				}
				if($.trim(_this.carId) === ""){
					utils.appAlert('请输入身份证号码');
					return;
				}
			    if(!(/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/).test(_this.carId)){
				     utils.appAlert('请输入正确的身份证号码');
				     return;
			    }
				isIdCard({
					idCard: _this.carId
				},function(res){
					if($.trim(cardNo) === ""){
						utils.appAlert('银行卡号不能为空');
						return;
					}
					if($.trim(_this.banks) === ""){
						utils.appAlert('开户行不能为空');
						return;
					}
					if($.trim(_this.branch) === ""){
						utils.appAlert('支行名称不能为空');
						return;
					}
					if($.trim(_this.phone) === ""){
						utils.appAlert('手机号码不能为空');
						return;
					}
					if(!(/^1(3|4|5|7|8)\d{9}$/.test(_this.phone))){
	                    utils.appAlert('请输入正确的手机号码');
	                    return;
					}
					sendPhoneCodeView({
						phone:_this.phone,
						codeType:6,
						smsType:1
					},function(res){
						utils.appAlert('请查收你的短信',function(){
				        	_this.sendVerifyCodeTimer();
				        	$(".verification").attr('disabled','true');
				        });	        
					})
				})
				
			},
			sendVerifyCodeTimer:function(){
				var $time_debounce = $('.verification');
				var _this=this;
				_this.setTimeToDefaut = function(secondsOfInterval) {
                	this.secondLeftOfDelay = secondsOfInterval;
            	};

				var secondsOfInterval = this.secondOfDelay;

				var intervalID = setInterval(function() {
	                secondsOfInterval = secondsOfInterval - 1000;
	                $time_debounce.html(" " + secondsOfInterval / 1000 + " 秒 ")
	                if (secondsOfInterval <= 0) {
	                    clearInterval(intervalID);
	                    $(".verification").removeAttr("disabled");
	                    $time_debounce.html("获取验证码");
	                }
	                _this.setTimeToDefaut(secondsOfInterval);
	            }, 1000);
			},
			/*getvoiceMessage:function(){
				var _this=this;
				sendPhoneCodeView({
					phone: _this.phone,
					codeType: 6,
					smsType: 2
				},function(res){
					utils.appAlert('你正在使用语音获取验证码<br/>请保持手机通畅');
				})
			},*/
			bankcard:function(event){
				var obj = event;
				var _this = this;
	            if(obj.keyCode != 8){                                                        //判断是否为Backspace键，若不是执行函数；
	                  var b = _this.cardNo;        //定义变量input  value值；
	                  var maxValue = 23;                                                       //限制输入框的最大值；
	                  b = b.replace(/[^\d\s]/g,"");                                         //正则表达式：如果输入框中输入的不是数字或者空格，将不会显示；
	                  _this.cardNo = b;               //把新得到得value值赋值给输入框；
	                 for(var n=1;n<=4;n++){                                                
	                      if(b.length <=5*n-2||b.length>5*n-1){                    //判断是否是该加空格的时候，若不会，还是原来的值；
	                          b = b;
	                      }else{
	                          b = b +" ";                                                           //给value添加一个空格；
	                          _this.cardNo = b;    //赋值给输入框新的value值；
	                      }
	                  }                     
	            }
			},
			submit:function(){
				var _this=this;
				var cardNo = utils.Trim(this.cardNo,"g");

				if($.trim(_this.realName) === ""){
					utils.appAlert('请输入真实姓名');
					return;
				}
				if($.trim(_this.carId) === ""){
					utils.appAlert('请输入身份证号码');
					return;
				}
			    if(!(/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/).test(_this.carId)){
				     utils.appAlert('请输入正确的身份证号码');
				     return;
			    }

				isIdCard({
					idCard: _this.carId
				},function(res){
					if($.trim(cardNo) === ""){
						utils.appAlert('银行卡号不能为空');
						return;
					}
					if($.trim(_this.banks) === ""){
						utils.appAlert('开户行不能为空');
						return;
					}
					if($.trim(_this.branch) === ""){
						utils.appAlert('支行名称不能为空');
						return;
					}
					if($.trim(_this.phone) === ""){
						utils.appAlert('手机号码不能为空');
						return;
					}
					if((_this.phone !== _this.userPhone)&&($.trim(_this.phoneCode)==="")){
						utils.appAlert('验证码不能为空')
						return;
					}

					var data = {
						realName: _this.realName,
						idCard: _this.carId,
						cardNo: cardNo,
						banks: _this.banks,
						branch: _this.branch,
						phone: _this.phone,
						phoneCode: _this.phoneCode
					}

					$.ajax({
		                url: utils.getWebUrl('verify/realName_version'),
		                type: 'POST',
		                data: data ,
		                dataType: 'json',
		                headers: {
		                   'authorization': 'Bearer '+ utils.userToken()
		                },
		                xhrFields: {
		                    withCredentials: true
		                },
		                crossDomain: true,
		                beforeSend:function(){
							$('body').append('<div class="msg">'+'审核中'+'</div>');
						},
		                success: function(res) {
		                    if(res.code === "10000"){
		                    	utils.appAlert("恭喜!<br/>您已通过实名认证",function(){
		                    		window.location.href="userInfo.html";
		                    	}) 
		                    }else{
		                        utils.appAlert("抱歉!<br/>实名认证未通过<br/>原因是: "+res.msg+"",null,"知道了");
		                    }
		                },
		                complete:function(){
							$('.msg').hide();
						},
		                error: function(res){
		                    utils.appAlert(res.msg);
		                }
		            });
				})
			},
			fadeIn:function(){
				$('.Message').removeClass('out');
				$('.Message').addClass('pop');		
				$('.Message').show();
			},
			fadeOut:function(){
				$('.Message').addClass('out');
				$('.Message').removeClass('pop');
				setTimeout(function(){
					$('.Message').hide();
				},100)
			}
		}
	})

	return certification_registerView;
});